home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / CIncludes / Terminals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-29  |  6.8 KB  |  233 lines  |  [TEXT/MPS ]

  1.  
  2. /************************************************************
  3.  
  4. Created: Thursday, September 12, 1991 at 10:32 AM
  5.  Terminals.h
  6.  C Interface to the Macintosh Libraries
  7.  
  8.  
  9.   Copyright Apple Computer, Inc. 1988-1991
  10.   All rights reserved
  11.  
  12. ************************************************************/
  13.  
  14.  
  15. #ifndef __TERMINALS__
  16. #define __TERMINALS__
  17.  
  18. #ifndef __DIALOGS__
  19. #include <Dialogs.h>
  20. #endif
  21.  
  22. #ifndef __CTBUTILITIES__
  23. #include <CTBUtilities.h>
  24. #endif
  25.  
  26. #ifndef __CONNECTIONS__
  27. #include <Connections.h>
  28. #endif
  29.  
  30.  
  31. enum {
  32.  
  33.  
  34. /* current Terminal Manager version */
  35.  curTMVersion = 2,
  36.  
  37. /* current Terminal Manager Environment Record version */
  38.  curTermEnvRecVers = 0,
  39.  
  40. /* error codes    */
  41.  tmGenericError = -1,
  42.  tmNoErr = 0,
  43.  tmNotSent = 1,
  44.  tmEnvironsChanged = 2,
  45.  tmNotSupported = 7,
  46.  tmNoTools = 8
  47. };
  48.  
  49. typedef OSErr TMErr;
  50.  
  51. enum {tmInvisible = 1 << 0,tmSaveBeforeClear = 1 << 1,tmNoMenus = 1 << 2,
  52.  tmAutoScroll = 1 << 3,tmConfigChanged = 1 << 4};
  53. typedef unsigned long TMFlags;
  54.  
  55. enum {selTextNormal   = 1 << 0,selTextBoxed   = 1 << 1,selGraphicsMarquee  = 1 << 2,
  56.  selGraphicsLasso  = 1 << 3,tmSearchNoDiacrit  = 1 << 8      /* These are only for TMSearchTypes */,
  57.  tmSearchNoCase   = 1 << 9};
  58. typedef unsigned short TMSearchTypes;
  59.  
  60.  
  61. typedef short TMSelTypes;
  62.  
  63. enum {cursorText = 1,cursorGraphics = 2};
  64. typedef unsigned short TMCursorTypes;
  65.  
  66. enum {tmTextTerminal   = 1 << 0,tmGraphicsTerminal  = 1 << 1};
  67. typedef unsigned short TMTermTypes;
  68.  
  69.  
  70. struct TermDataBlock {
  71.  TMTermTypes flags;
  72.  Handle theData;
  73.  Handle auxData;
  74.  long reserved;
  75. };
  76.  
  77. typedef struct TermDataBlock TermDataBlock;
  78. typedef TermDataBlock *TermDataBlockPtr, **TermDataBlockH;
  79.  
  80. struct TermEnvironRec {
  81.  short version;
  82.  TMTermTypes termType;
  83.  short textRows;
  84.  short textCols;
  85.  Point cellSize;
  86.  Rect graphicSize;
  87.  Point slop;
  88.  Rect auxSpace;
  89. };
  90.  
  91. typedef struct TermEnvironRec TermEnvironRec;
  92. typedef TermEnvironRec *TermEnvironPtr;
  93.  
  94. union TMSelection {
  95.  Rect selRect;
  96.  RgnHandle selRgnHandle;
  97. };
  98.  
  99. typedef union TMSelection TMSelection;
  100.  
  101. /*    TMTermTypes     */
  102. struct TermRecord {
  103.  short procID;
  104.  TMFlags flags;
  105.  TMErr errCode;
  106.  long refCon;
  107.  long userData;
  108.  ProcPtr defProc;
  109.  Ptr config;
  110.  Ptr oldConfig;
  111.  ProcPtr environsProc;
  112.  long reserved1;
  113.  long reserved2;
  114.  Ptr tmPrivate;
  115.  ProcPtr sendProc;
  116.  ProcPtr breakProc;
  117.  ProcPtr cacheProc;
  118.  ProcPtr clikLoop;
  119.  WindowPtr owner;
  120.  Rect termRect;
  121.  Rect viewRect;
  122.  Rect visRect;
  123.  long lastIdle;
  124.  TMSelection selection;
  125.  TMSelTypes selType;
  126.  long mluField;
  127. };
  128.  
  129. typedef struct TermRecord TermRecord;
  130. typedef TermRecord *TermPtr, **TermHandle;
  131.  
  132.  
  133. /* application routines type definitions */
  134. typedef pascal long (*TerminalSendProcPtr) (Ptr thePtr, long theSize, long refCon, CMFlags flags);
  135. typedef pascal void (*TerminalBreakProcPtr) (long duration, long refCon);
  136. typedef pascal long (*TerminalCacheProcPtr) (long refCon, TermDataBlock theTermData);
  137. typedef pascal void (*TerminalSearchCallBackProcPtr) (TermHandle hTerm, short refNum, Rect foundRect);
  138. typedef pascal Boolean (*TerminalClikLoopProcPtr) (long refCon);
  139. typedef pascal void (*TerminalEnvironsProcPtr) (long refCon, ConnEnvironRec *theEnvirons);
  140. typedef pascal void (*TerminalChooseIdleProcPtr) (void);
  141.  
  142. #ifdef __cplusplus
  143. extern "C" {
  144. #endif
  145. pascal TMErr InitTM(void); 
  146. pascal Handle TMGetVersion(TermHandle hTerm); 
  147. pascal short TMGetTMVersion(void); 
  148.  
  149. pascal TermHandle TMNew(const Rect *termRect,const Rect *viewRect,TMFlags flags,
  150.  short procID,WindowPtr owner,TerminalSendProcPtr sendProc,TerminalCacheProcPtr cacheProc,
  151.  TerminalBreakProcPtr breakProc,TerminalClikLoopProcPtr clikLoop,TerminalEnvironsProcPtr environsProc,
  152.  long refCon,long userData); 
  153.  
  154. pascal void TMDispose(TermHandle hTerm); 
  155.  
  156. pascal void TMKey(TermHandle hTerm,const EventRecord *theEvent); 
  157. pascal void TMUpdate(TermHandle hTerm,RgnHandle visRgn); 
  158. pascal void TMPaint(TermHandle hTerm,const TermDataBlock *theTermData,const Rect *theRect); 
  159. pascal void TMActivate(TermHandle hTerm,Boolean activate); 
  160. pascal void TMResume(TermHandle hTerm,Boolean resume); 
  161. pascal void TMClick(TermHandle hTerm,const EventRecord *theEvent); 
  162. pascal void TMIdle(TermHandle hTerm); 
  163.  
  164. pascal long TMStream(TermHandle hTerm,void *theBuffer,long theLength,CMFlags flags); 
  165. pascal Boolean TMMenu(TermHandle hTerm,short menuID,short item); 
  166.  
  167. pascal void TMReset(TermHandle hTerm); 
  168. pascal void TMClear(TermHandle hTerm); 
  169.  
  170. pascal void TMResize(TermHandle hTerm,const Rect *newViewRect); 
  171.  
  172. pascal long TMGetSelect(TermHandle hTerm,Handle theData,ResType *theType); 
  173. pascal void TMGetLine(TermHandle hTerm,short lineNo,TermDataBlock *theTermData); 
  174. pascal void TMSetSelection(TermHandle hTerm,const TMSelection *theSelection,
  175.  TMSelTypes selType); 
  176.  
  177. pascal void TMScroll(TermHandle hTerm,short dh,short dv); 
  178.  
  179. pascal Boolean TMValidate(TermHandle hTerm); 
  180. pascal void TMDefault(Ptr *theConfig,short procID,Boolean allocate); 
  181.  
  182. pascal Handle TMSetupPreflight(short procID,long *magicCookie); 
  183. pascal void TMSetupSetup(short procID,const void *theConfig,short count,
  184.  DialogPtr theDialog,long *magicCookie); 
  185. pascal Boolean TMSetupFilter(short procID,const void *theConfig,short count,
  186.  DialogPtr theDialog,EventRecord *theEvent,short *theItem,long *magicCookie); 
  187. pascal void TMSetupItem(short procID,const void *theConfig,short count,
  188.  DialogPtr theDialog,short *theItem,long *magicCookie); 
  189. pascal void TMSetupXCleanup(short procID,const void *theConfig,short count,
  190.  DialogPtr theDialog,Boolean OKed,long *magicCookie); 
  191. pascal void TMSetupPostflight(short procID); 
  192.  
  193. pascal Ptr TMGetConfig(TermHandle hTerm); 
  194. pascal short TMSetConfig(TermHandle hTerm,const void *thePtr); 
  195.  
  196. pascal OSErr TMIntlToEnglish(TermHandle hTerm,const void *inputPtr,Ptr *outputPtr,
  197.  short language); 
  198. pascal OSErr TMEnglishToIntl(TermHandle hTerm,const void *inputPtr,Ptr *outputPtr,
  199.  short language); 
  200.  
  201. pascal void TMGetToolName(short id,Str255 name); 
  202. pascal short TMGetProcID(ConstStr255Param name); 
  203.  
  204. pascal void TMSetRefCon(TermHandle hTerm,long refCon); 
  205. pascal long TMGetRefCon(TermHandle hTerm); 
  206.  
  207. pascal void TMSetUserData(TermHandle hTerm,long userData); 
  208. pascal long TMGetUserData(TermHandle hTerm); 
  209.  
  210. pascal short TMAddSearch(TermHandle hTerm,ConstStr255Param theString,const Rect *where,
  211.  TMSearchTypes searchType,TerminalSearchCallBackProcPtr callBack); 
  212. pascal void TMRemoveSearch(TermHandle hTerm,short refnum); 
  213. pascal void TMClearSearch(TermHandle hTerm); 
  214.  
  215. pascal Point TMGetCursor(TermHandle hTerm,TMCursorTypes cursType); 
  216.  
  217. pascal TMErr TMGetTermEnvirons(TermHandle hTerm,TermEnvironRec *theEnvirons); 
  218.  
  219. pascal short TMChoose(TermHandle *hTerm,Point where,TerminalChooseIdleProcPtr idleProc); 
  220.  
  221. pascal void TMEvent(TermHandle hTerm,const EventRecord *theEvent); 
  222.  
  223. pascal Boolean TMDoTermKey(TermHandle hTerm,ConstStr255Param theKey); 
  224. pascal short TMCountTermKeys(TermHandle hTerm); 
  225. pascal void TMGetIndTermKey(TermHandle hTerm,short id,Str255 theKey); 
  226.  
  227. pascal void TMGetErrorString(TermHandle hTerm,short id,Str255 errMsg); 
  228. #ifdef __cplusplus
  229. }
  230. #endif
  231.  
  232. #endif
  233.